Data communication is usually described in terms of a model developed by the International Organization for Standardization (ISO) in 1977 known as the open systems interconnect (OSI) reference model. According to this model, the data communication task is broken down into seven hierarchical layers: 1. physical; 2. data link; 3. network; 4. transport; 5. session; 6. presentation; and 7. application. Each layer uses the layer immediately below it and provides a service to the layer above. The layers are modular and each layer can perform its processing without knowing the protocol selected at the other layers.
Different tasks are performed in each layer and more abstract tasks are performed at higher layers of the hierarchy. The physical layer (Layer 1) is responsible for controlling the functioning of the physical (electrical) interface and includes the transmission technique, pin layout, and connector type. Typical physical layer protocols include RS-232 physical layer, 10BaseX, 100BaseX, and OC-1 through OC-48.
The data link layer (Layer 2) takes raw data received from the physical layer and determines the frame boundaries, separates header information, and checks the integrity of the data. The data link layer is also responsible for station addressing, logical network topology, synchronization, and connection. Typical data link layer protocols include peer-to-peer protocol (PPP), systems network architecture (SNA), and IEEE 802.2. Sometimes the data link layer is broken down into two sub-layers, the media access control (MAC) sub-layer and the logical link control (LLC) sub-layer hierarchically above the MAC sub-layer.
The network layer (Layer 3) is responsible for routing the packets over the network. The most common network protocol is internet protocol (IP). This protocol is responsible for assigning and decoding IP addresses that identify entities that are coupled to the network. There are two versions of the internet protocol in use, version 4 (IPv4) and version 6 (IPv6).
The transport layer (Layer 4) is responsible for such things as reliable data transfer between two end points and may use sequencing, error control and general flow control to achieve reliable data transfer. Typical transport protocols include Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and Internet Control Messaging Protocol (ICMP).
The session layer (Layer 5) defines how networked devices establish, maintain, and end a session. The presentation layer (Layer 6) is responsible for formatting data, converting character sets, encrypting, compressing and decompressing, and redirecting data. The application layer (Layer 7) provides a set of tools that a user's application program can use to accomplish a task in a network, such as file, print, messaging, and error recovery. These include electronic mail (E-mail), newsgroups, web applications, file transfer, host sessions, directory services, network management, and file services.
While the lower four layers of the OSI reference model are modular, the upper protocol layers are usually linked together as a set. For example if a user's application program selects world wide web services at Layer 7, the hypertext transport protocol (http) will usually be selected at Layer 6 and corresponding port 80 will be selected at Layer 5. If a user's application program selects E-mail at Layer 7, post office protocol (POP) using port 20, simple mail transfer protocol (SMTP) using port 25, or internet mail access protocol (IMAP) using port 143 will usually be selected.
A data communication host terminal performs lower layers of the OSI model in hardware and the remaining, higher layers in software. A typical implementation performs Layer 1 and the MAC sub-layer of Layer 2 in hardware. The remaining layers including the LLC sub-layer and all higher layers are performed in software.
Recent advances in integrated circuit technology have made higher performance networks possible. Thus, so-called Gigabit Ethernet in which transmission speeds exceed 1 gigabit per second (Gbps) and 10-Gigabit Ethernet with speeds of 10 Gbps are now available. However when data rates are this large, the overhead on the central processing unit (CPU) for performing the software portions of the OSI data communication task goes up as well. Accordingly, it is desirable to have a data communication system which is able to perform more of the communication task in hardware to free the CPU to perform other tasks and to perform them efficiently. Such a data communication system and other desirable features and characteristics of the present invention will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and the foregoing technical field and background.